In many contexts in computer systems, information is stored and later presented to a user. In one such context, help systems for software applications, help information is stored and presented to a user. In such a help system, for example, a user may inquirer as to how to change a specific setting for a printer attached to an application. In response, the application's associated help system may provide the user with help information regarding changing the setting.
However, in prior art help contexts and in other information presentation contexts, the information stored and presented to the user is generally static information. Each time a specific help topic is displayed to the user, it contains the same actual content presented in the same way. This is a drawback for several reasons.
First, to use this help content, the user may need to have knowledge about and understand details about the setup and current functioning of the user's computer system. For example, the help content may ask how the printer is attached (e.g. local or networked), what version of some software application is running on the user's computer, or other details dependent on the setup and functioning of the user's computer, and may guide the user based on the answers to these questions. Providing help information in the alternative based on some detail of the user's computer system may be done by including all the information in the help content (e.g. “if the printer is a networked printer” will be followed by directions on changing the setting for a networked printer, but the same help screen may include “if the printer is a local printer” and directions on changing the setting for a local printer.) Providing help information in the alternative may also be accomplished by requesting that the user make a selection (e.g. “is the printer a networked or local printer?”) and then presenting the applicable help information to the user.
As another example, if a user is a novice user, a help topic may need to include very detailed help information on performing a certain change. However, if the user is an expert user, the same help topic may need to include only one sentence. As detailed above, in the prior art the flexibility which is required to present different information to the different types of users in this situation is limited and cumbersome to the user.
In either instance, the user in such a situation is required to have some sophistication in knowing the setup of their computer system and the current state of the computer system. This requirement produces some confusion and dissatisfaction with less sophisticated users and requires additional time for even sophisticated users who are consulting the help system.
In addition, there may be a need for content to be authored at one time, and for content to be adapted at a later time. For example, a mistake may be corrected, new information added, or new UI functionality incorporated. In order to make even minor adaptations, entire files or groups of files of content must be replaced. This replacement is resource intensive. For example, if help code relates to the name of a product, or to a help website or phone number, and that name, website, or phone number are changed, the replacement of the information with current information must occur at each point in which the outdated information appears.
In the prior art described above, content is limited to the static content which appears in the content files. There is no mechanism by which some content not appearing in the content files can be presented to the user.
While some earlier help systems did allow script to be included in the help content, code and content were not separated, which was led to inflexibility and insecurity in the provision of help content.
Thus, there is a need for a system and method to overcome these deficits in the prior art. The present invention addresses the aforementioned needs and solves them with additional advantages as expressed herein.